iT邦幫忙

2024 iThome 鐵人賽

DAY 7
2
Software Development

從零開始的後端學習之旅系列 第 7

DAY7 網路通訊協定之 UDP 是什麼?跟 TCP 有什麼不一樣?

  • 分享至 

  • xImage
  •  

前言

前兩篇介紹了關於 TCP 這個協定是如何進行連線、確保傳輸資料的可靠及有序性、關閉連線流程以及所謂的 SYN 攻擊,那今天就來介紹同樣位於 OSI 模型中傳輸層的另外一個協定-UDP吧!
/images/emoticon/emoticon30.gif

UDP是什麼?

UDP(User Datagram Protocol,使用者資料包協定),在 RFC 768中被規範,與 TCP 連接導向的特性不同,UDP 是所謂的 transaction oriented(翻譯為:交易導向/事務導向?),傳輸資料前並不需要建立事前的連接步驟,具有以下特性:

  1. 所謂的事務導向,就是透過 UDP 協定傳輸數據時,每個封包都是獨立的交易,不需要建立端對端的連結,適用於簡單的查詢-回應協議,如:DNS 系統。
  2. 傳送資料之前不需經過握手建立連線,數據會直接發送出去,不會追蹤數據封包傳送狀態,並不保證封包的送達以及錯誤、遺漏時要求重傳,也因此較少延遲,適用於語音、視訊或線上遊戲等有即時性要求的應用場景。
  3. 沒有順序性,接收方收到訊息時無從得知前後順序。

UDP & TCP 差別

  • 傳輸速率:由於 TCP 在傳輸數據前會先透過三次握手建立連線,而 UDP 並不需要建立連接,直接將數據發送給接收方,因此 UDP 的傳輸速率會較快。
  • 可靠性:TCP 可靠性包括偵測封包遺失(透過序號)和錯誤(透過每段校驗和),以及透過重傳進行修正。而 UDP 並未建立可靠連線,於資料發送後也不會追蹤後續狀況,與 TCP 相較起來是不可靠的。
  • 順序性:TCP 透過給予每個封包序號,使得接收方在接收到封包後能夠根據序號重組資料。而 UDP 並無設置相關序號,接收方無從得知前後順序。
  • headers 大小差異:基本的 TCP header 為 20 bytes(160 位元)。而 UDP 因為是最簡單、無連接的協定,他的 header 固定佔據 8 bytes(64 位元),在傳輸時開銷較小。

小結

今天介紹到了 UDP 協定的相關內容,以及與 TCP 協定這兩個同樣位於 OSI 模型傳輸層的協定之間的差異,那就明天見囉~
/images/emoticon/emoticon08.gif

參考資料

RFC 768
維基百科


上一篇
DAY6 網路通訊協定之 TCP(下)
下一篇
DAY8 OSI模型如何運作?
系列文
從零開始的後端學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言